1. Technical Field
The present application relates generally to an improved data processing system and method. More specifically, the present application is directed to a system and method for adjusting direction of data flow between input/output (I/O) bridges and I/O hubs based on real time traffic levels.
2. Description of Related Art
As the number of input/output (I/O) slots in a data processing system increases, more of the slots are moved from the central electronic complex (CEC), which houses the electronics, including the multi-chip modules, processing units, and the like, for performing high-speed computing associated with the data processing system, to external I/O drawers. To connect the I/O drawers to the CEC, the I/O functionality is typically separated into two parts, the I/O hubs and the I/O bridges. The I/O hubs are the devices in the I/O path that are directly connected to the CEC. I/O bridges are the devices, usually integrated circuit chips, in the I/O drawers that connect with the I/O hubs. Depending on the I/O drawer design, there may be one or multiple I/O bridges per I/O drawer.
In theory, an administrator may connect any number of I/O bridges to a single I/O hub in a loop configuration. In actuality, there is typically a limit placed on the number of I/O bridges that may be connected to an I/O hub, such as 32 I/O bridges per I/O hub, dependent upon the particular architecture and communication protocol used by the data processing system.
As mentioned above, the I/O bridges are typically connected to the I/O hub in a loop configuration, such as shown in FIG. 1. As shown in FIG. 1, the central electronics complex (CEC) 110 is coupled to the I/O hub 120. A plurality of I/O bridges 130-140 or a plurality of I/O drawers 150-160 are coupled to the I/O hub 120 in a loop configuration. Within the loop configuration, each I/O bridge 130-140 is coupled in series to at least one other I/O bridge with two of the I/O bridges 130 and 140 being also coupled to the I/O hub 120. Each I/O bridge 130-140 provides connection to one or more I/O slots of a corresponding I/O drawer 150-160.
As shown in FIG. 1, each I/O bridge 130-140, by virtue of the loop configuration, has two directions in which data may be sent. For example, the I/O bridge 134 may send data in the direction of I/O bridge 132 (counter-clockwise in the figure) or I/O bridge 136 (clockwise in the figure) toward the I/O hub 120. Similarly, I/O bridge 138 may send data in the direction of I/O bridge 136 or I/O bridge 140. Ideally the I/O bridges 130-140 are divided up during configuring of the data processing system such that half of the I/O bridges will send data in one direction while the other half of the I/O bridges will send data in the other direction.
Ideally, an administrator will balance out the data processing system I/O load so that the workload from I/O adapters is evenly divided between data flow directions. Unfortunately, however, administrators do not always configure the data processing system in that way or the data rates will vary based on the current workload. For example, at night, a server data processing system may be performing a backup operation using Fibre Channel I/O adapters provided in one or more I/O drawers 150-160 and I/O bridges 130-140. In the morning, the server data processing system may be performing video conferencing with high end graphics processing which may be handled by a different I/O adapter, I/O drawer 150-160, and I/O bridges 130-140. In the afternoon, there may be a higher level of network traffic through yet another I/O adapter, I/O drawer(s) 150-160, and I/O bridge(s) 130-140. Thus, dependent upon the particular workload at different times, the amount and rate at which data is passing through particular I/O bridges 130-140 may be quite different and thus, the balance of the data flowing in the two different directions may often be disrupted from an ideal condition.
As a result, one direction of data flow through the loop of I/O bridges 130-140 to the I/O hub 120 is under-utilized while the other direction of data flow may be over-utilized. Thus, the overall performance bandwidth of the I/O hub 120 and the I/O bridge loop is not maximized in known data processing system architectures.